home *** CD-ROM | disk | FTP | other *** search
/ Merciful 5 / Merciful - Disc 5.iso / software / p / pcqpascalv1.2d.lha / Examples2 / Taskbremse / Taskbremse.p < prev   
Encoding:
Text File  |  1997-05-06  |  1.5 KB  |  64 lines

  1. Program TaskBremse;
  2.  
  3. {
  4.     Mit diesem Programm kann durch folgende Tasten der Amiga angehalten
  5.     oder gestartet werden:
  6.     AMIGA-LINKS  : Stop
  7.     AMIGA-RECHTS : Weiter
  8.     DEL          : Ende
  9. }
  10.  
  11. {$I "Include:Libraries/DOS.i"}
  12. {$I "Include:Exec/Tasks.i"}
  13. {$I "Include:Exec/Libraries.i"}
  14.  
  15. VAR
  16.         MeinTask    : TaskPtr;
  17.         b1   : byte;
  18.         i : integer;
  19.  
  20. { --------------------------------------------------------------------- }
  21.  
  22. Function GetChar() : byte;
  23. { Liefert den RAW-Wert einer Taste zurück.
  24.   Ein paar Tastencodes:     AMIGA-links   : $33
  25.                             AMIGA-rechts  : $31
  26.                             DEL           : $73
  27. }
  28.  
  29. begin
  30.  
  31. {$A
  32.     move.b  $bfec01,d0  ; Tastaturcode in D0
  33. }
  34. end; {GetChar}
  35.  
  36. { --------------------------------------------------------------------- }
  37. begin
  38.  
  39. {$A
  40.         move.l  #0,d0
  41.         move.l  d0,-(sp)
  42.         jsr     _FindTask
  43.         addq.w  #4,sp
  44.         move.l  d0,_MeinTask
  45. }
  46.     if MeinTask = NIL then begin
  47.         writeln("Kann mich nicht finden!");
  48.         exit(10);
  49.     end;
  50.  
  51.     i := SetTaskPri(MeinTask,127);
  52.     writeln("AMIGA-LINKS  : Stop, AMIGA-RECHTS : Weiter, DEL = Ende ");
  53.  
  54.     repeat
  55.         if GetChar() = $33 then begin  { AMIGA-links }
  56.             repeat
  57.             b1 := 1;    { Nur damit unser Task was zu tun bekommt }
  58.             until (GetChar()=$31) or (GetChar()= $73);
  59.         end;
  60.         Delay(5); { Damit andere auch mal dran kommen }
  61.     until GetChar() = $73; { DEL - Taste }
  62.     i := SetTaskPri(MeinTask,0);
  63. end.
  64.